home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-27 | 6.8 KB | 241 lines |
- 10 'ANTENNA 13 JAN 91 rev. 27 SEP 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 PROG$="antenna"
- 40 COMMON EX$,PROG$
- 50 CLS:KEY OFF
- 60 COLOR 7,0,1
- 70 UL$=STRING$(80,205)
- 80 U$="##,###.###"
- 90 V$="####.# "
- 100 W$="#####,###.###"
- 110 V#=2.99792E+08 'speed of light in metres per second
- 120 ' based on ISO standards (1992)
- 130 '
- 140 COLOR 15,2
- 150 PRINT " ANTENNA ELEMENT LENGTHS & PRUNING CALCULATOR";
- 160 PRINT TAB(57);"by George Murphy VE3ERP ";
- 170 COLOR 1,0:PRINT STRING$(80,223);
- 180 COLOR 7,0
- 190 '
- 200 '.....preface
- 210 OPEN"I",1,"\data\docfiles\antenna.doc"
- 220 IF EOF(1)THEN 240
- 230 INPUT#1,NOTE$:PRINT " ";NOTE$:GOTO 220
- 240 CLOSE
- 250 PRINT UL$;
- 260 '
- 270 '.....start
- 280 PRINT " Press number in < > for:"
- 290 PRINT UL$;
- 300 PRINT " < 1 > Antenna Length calculator (ARRL standards)"
- 310 PRINT " < 2 > Antenna Pruning calculator"
- 320 PRINT " < 3 > Antenna Lengths & K-Factors (NEC-2 models)"
- 330 PRINT UL$;
- 340 PRINT " < 0 > EXIT"
- 350 Z$=INKEY$
- 360 IF Z$="0"THEN CLS:RUN EX$
- 370 IF Z$="1"THEN 420
- 380 IF Z$="2"THEN 1880
- 390 IF Z$="3"THEN CLS:CHAIN"kfactor"
- 400 GOTO 350
- 410 '
- 420 '.....input frequency
- 430 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 440 PRINT " Press number in < > to choose standard units of measure:"
- 450 PRINT UL$;
- 460 PRINT " < 1 > Metric"
- 470 PRINT " < 2 > U.S.A./Imperial"
- 480 Z$=INKEY$
- 490 IF Z$="1" THEN UM=0.3048:UM$=" metres":GOTO 520
- 500 IF Z$="2" THEN UM=1:UM$=" feet":GOTO 520
- 510 GOTO 480
- 520 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 530 '
- 540 '.....input data
- 550 INPUT " ENTER: Frequency in MHz ";F
- 560 IF F=0 THEN 430
- 570 '
- 580 '.....define elements
- 590 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 600 PRINT " Press number in < > to define antenna elements:
- 610 PRINT UL$;
- 620 PRINT " <1> WIRE
- 630 PRINT " <2> TUBING
- 640 Z$=INKEY$
- 650 IF Z$="1"THEN E$="Wire":GOTO 690
- 660 IF Z$="2"THEN E$="Tubing":GOTO 690
- 670 GOTO 640
- 680 '
- 690 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 700 IF E$="Tubing"THEN 730
- 710 IF E$="Wire"THEN 840
- 720 '
- 730 PRINT " Do you want to enter tubing size in (m)illimetres or (i)nches?";
- 740 PRINT " (m/i) "
- 750 PRINT UL$;
- 760 Z$=INKEY$
- 770 IF Z$="i"THEN MM=1:MM$="inches":GOTO 800
- 780 IF Z$="m"THEN MM=25.4:MM$="mm.":GOTO 800
- 790 GOTO 760
- 800 PRINT " ENTER: Outside diameter of tubing (";MM$;")";:INPUT D:D=D/MM
- 810 IF D=0 THEN CLS:GOTO 730
- 820 GOTO 1060
- 830 '
- 840 PRINT " Press letter in < > to select how you want to enter wire size:"
- 850 PRINT UL$;
- 860 PRINT " < a > Diameter in millimetres"
- 870 PRINT " < b > Diameter in inches"
- 880 PRINT " < c > Diameter in AWG size"
- 890 Z$=INKEY$
- 900 IF Z$="a"THEN MM=25.4:MM$="mm":GOTO 950
- 910 IF Z$="b"THEN MM=1:MM$="inches":GOTO 950
- 920 IF Z$="c"THEN MM=1:MM$="AWG#":GOTO 950
- 930 GOTO 890
- 940 '
- 950 PRINT UL$;
- 960 PRINT " ENTER: Wire diameter (";MM$;")";:INPUT N
- 970 IF Z$="c"THEN GOSUB 1000:GOTO 980 ELSE D=N/MM
- 980 GOTO 1060
- 990 '
- 1000 '.....convert AWG size to diameter in inches
- 1010 KK=(0.46/0.005)^(1/39)
- 1020 NN=N+3
- 1030 D=0.46/KK^NN
- 1040 RETURN
- 1050 '
- 1060 '.....K factor
- 1070 J=V#/2/0.3048/10^6 'factor for speed of light, in feet, for 1/2 wavelength
- 1080 REM J=491.7865
- 1090 WL=J/F '1/2 wavelength in free space
- 1100 R=WL*12/D 'ratio of 1/2 wavelength to element diameter
- 1110 K=0.91
- 1120 IF R>10 THEN K=0.92
- 1130 IF R>12 THEN K=0.93
- 1140 IF R>15 THEN K=0.94
- 1150 IF R>22 THEN K=0.95
- 1160 IF R>50 THEN K=0.96
- 1170 IF R>200 THEN K=0.97
- 1180 IF R>2000 THEN K=0.98
- 1190 '
- 1200 '.....antenna length
- 1210 REM J=491.7865
- 1220 HW=J*K/F 'half wave flat top in feet
- 1230 IF(E$="Wire")AND(F<=30)THEN HW=0.95*HW/K 'end effect correction if F<=30mHz
- 1240 VA=234/F 'full size vertical
- 1250 HWL=J*(1-0.05)/F 'half wave long wire
- 1260 FWL=J*(2-0.05)/F 'full wave long wire
- 1270 WL2=J*(4-0.05)/F 'two-wave long wire
- 1280 WL4=J*(8-0.05)/F 'four-wave long wire
- 1290 '
- 1300 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 1310 PRINT " Velocity of light (ISO 1992 standard)....V=";
- 1320 PRINT USING "########,###.###";V#/10^3;:PRINT " km. per second"
- 1330 PRINT " Frequency ...............................F= ";USING W$;F;
- 1340 Z=CINT(WL*0.3048*2)
- 1350 PRINT " MHz (";Z;"m. band)"
- 1360 PRINT " 1/2 Wavelength in free space=[ V(km)<UNK! {00F6}>F(kHz)<UNK! {00F6}>2 ]= ";
- 1370 PRINT USING U$;WL*0.3048;
- 1380 PRINT " m. (";USING "###.###";WL;:PRINT " ft.)"
- 1390 PRINT " Minimum recommended height (1/4 wavelength)....= ";
- 1400 PRINT USING U$;WL*0.3048/2;
- 1410 PRINT " m. (";USING "###.###";WL/2;:PRINT " ft.)"
- 1420 PRINT UL$;
- 1430 AED$=" "+E$+" Antenna Element Data:"
- 1440 PRINT AED$;
- 1450 IF MM$="AWG#"THEN PRINT " ( ";MM$;N;")" ELSE PRINT ""
- 1460 PRINT STRING$(LEN(AED$),196) 'underline
- 1470 IF UM=1 THEN MM=D:MM$=" in." ELSE MM=D*25.4:MM$=" mm."
- 1480 PRINT" Antenna element diameter.........................";USING U$;MM;
- 1490 PRINT MM$
- 1500 PRINT " Ratio of 1/2 wavelength to element diameter......";USING U$;R;
- 1510 PRINT ":1"
- 1520 PRINT " K factor (approximate)...........................";USING U$;K
- 1530 PRINT UL$;
- 1540 AEL$=" "+E$+" Antenna Element Lengths:"
- 1550 PRINT AEL$;TAB(39);"*ALK (Length = ALK <UNK! {00F6}> Frequency in MHz)
- 1560 PRINT STRING$(30,196);SPC(8);"SOUNDSOUNDSOUNDSOUNDSOUND"
- 1570 '
- 1580 ALK=F*HW*UM
- 1590 PRINT " Half-Wave flat top (e.g. dipole)....";USING V$;ALK;
- 1600 PRINT "......";USING U$;HW*UM;:PRINT UM$
- 1610 '
- 1620 ALK=F*VA*UM
- 1630 PRINT " Full size vertical (height).........";USING V$;ALK;
- 1640 PRINT "......";USING U$;VA*UM;:PRINT UM$
- 1650 '
- 1660 PRINT UL$;
- 1670 '
- 1680 ALK=F*HWL*UM
- 1690 PRINT " Half-Wave end fed single wire.......";USING V$;ALK;
- 1700 PRINT "......";USING U$;HWL*UM;:PRINT UM$
- 1710 '
- 1720 ALK=F*FWL*UM
- 1730 PRINT " Full-Wave end fed single wire.......";USING V$;ALK;
- 1740 PRINT "......";USING U$;FWL*UM;:PRINT UM$
- 1750 '
- 1760 ALK=F*WL2*UM
- 1770 PRINT " Two-Wave end fed single wire........";USING V$;ALK;
- 1780 PRINT "......";USING U$;WL2*UM;:PRINT UM$
- 1790 '
- 1800 ALK=F*WL4*UM
- 1810 PRINT " Four-Wave end fed single wire.......";USING V$;ALK;
- 1820 PRINT "......";USING U$;WL4*UM;:PRINT UM$
- 1830 PRINT UL$;
- 1840 PRINT " *ALK = Antenna Length Constant.";
- 1850 PRINT " Includes calculated K and end-effect factors.";
- 1860 GOTO 2250
- 1870 '
- 1880 '.....pruning calculator
- 1890 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 1900 GOTO 1960
- 1910 '.....format input line
- 1920 U$="####.###":LOCATE CSRLIN-1:PRINT SPC(7);
- 1930 LOCATE CSRLIN,49:PRINT STRING$(7,".");USING U$;Z;
- 1940 RETURN
- 1950 '
- 1960 PRINT TAB(9);
- 1970 PRINT " ALK (Antenna Length Constant)"
- 1980 PRINT TAB(9);
- 1990 PRINT "Antenna length formula: Length = SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND-"
- 2000 PRINT TAB(9);
- 2010 PRINT " Frequency (MHz)"
- 2020 PRINT
- 2030 PRINT TAB(9);
- 2040 PRINT "You may enter antenna length in either metres or feet."
- 2050 PRINT TAB(9);
- 2060 PRINT "The calculation results will be in the same units of measurement."
- 2070 PRINT UL$;
- 2080 INPUT " ENTER: Design Frequency........................(MHz)";FD
- 2090 Z=FD:GOSUB 1910:PRINT " MHz"
- 2100 INPUT " ENTER: Unpruned Antenna Length......................";LU
- 2110 Z=LU:GOSUB 1910
- 2120 DLF=FD*LU 'design length factor
- 2130 PRINT " Design ALK (Antenna Length Constant)...........";
- 2140 PRINT USING U$;DLF
- 2150 INPUT " ENTER: Frequency at which minimum SWR occurs...(MHz)";FA
- 2160 Z=FA:GOSUB 1910:PRINT " MHz"
- 2170 ALK=FA*LU 'actual length factor
- 2180 PL=ALK/FD
- 2190 PRINT " Actual ALK for this installation...............";
- 2200 PRINT USING U$;ALK
- 2210 PRINT " Pruned Antenna Length should be................";
- 2220 PRINT USING U$;PL
- 2230 GOTO 2250
- 2240 '
- 2250 '.....end
- 2260 GOSUB 2280:CLS:GOTO 50
- 2270 '
- 2280 'HARDCOPY
- 2290 GOSUB 2400:LOCATE 25,2:COLOR 14,6
- 2300 PRINT " Press 1 to print screen, 2 to print screen & ";
- 2310 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 2320 Z$=INKEY$:IF Z$="3"THEN GOSUB 2400:RETURN
- 2330 IF Z$="1"OR Z$="2"THEN GOSUB 2400:GOTO 2350
- 2340 GOTO 2320
- 2350 FOR QX=1 TO 24:FOR QY=1 TO 80
- 2360 LPRINT CHR$(SCREEN(QX,QY));
- 2370 NEXT QY:NEXT QX
- 2380 IF Z$="2"THEN LPRINT CHR$(12)
- 2390 GOTO 2290
- 2400 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-